Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Praca domowa pytanie


Rekomendowane odpowiedzi

Opublikowano

Witam w p.d. miałem napisać programik który losuje liczbę a my mamy ją zgadnąć .

 

Czyli podajemy liczbę od 1 do 10 i jeśli trafimy program pisze nam Gratulacje.

 

Program działa dobrze ale nie wiem czy nie zrobiłem czegoś źle podczas pisania kodu itp.

Bo sami dobrze wiecie, że jak coś działa w praktyce to nie zawsze kod jest dobrze napisany

 

:)

 

 

 

#include<cstdlib>
#include<ctime>
#include<iostream>
using namespace std;
int main()
{
	int a ;
int b;
do
{
	srand(time(NULL));
	a= (rand()%10)+1;
	cout<<"Podaj liczbe: ";
	cin>>b;
	if(b ==a)
	{
	cout<<"gratulaje"<<endl;
	cout<<a<<endl;
}
}while(b=a);
}

2utq9g5.png b6u4qg.png
Opublikowano
}while(b=a);

 

 

Prawdopodobnie zapomniałeś o czymś, o czym pamiętałeś w ifie :).

 

PS. Albo chcialeś dodać coś na odwrót :P.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

 

}while(b=a);

 

 

Prawdopodobnie zapomniałeś o czymś, o czym pamiętałeś w ifie :).

 

PS. Albo chcialeś dodać coś na odwrót :P.

Wstyd się przyznać, ale nie rozumiem :)

A no i dodałem, że pokazuje nam ilość strzałów :)

 

 

 

 

 
#include<cstdlib>
#include<ctime>
#include<iostream>
using namespace std;
int main()
{
    int a ;
int b;
int c =0;
do
{
    srand(time(NULL));
    a= (rand()%10)+1;
    cout<<"Podaj liczbe: ";
    cin>>b;
    c++;
    if(b ==a)
    {
    cout<<"gratulaje"<<endl;
    cout<<a<<endl;
    cout<<endl;
    cout<<endl;
    cout<<"Strzelales "<<c<<"razy."<<endl;

    
    
}
}while(b=a);
}

 

 

 

 

 

@B.S

 

Napisałem, że program działa :)

Chodzi mi teraz o analizę kodu dziubasku :)

2utq9g5.png b6u4qg.png
Opublikowano

@up

nie mam komplikatora aby sprawdzić ale coś ci się pomieszalo :-D

 

!= oznacza to że nie rowne :-D

 

No właśnie. Dopóki a nie jest równe b(czyli nie zgadłeś liczby), wykonuje się ta pętla while. Logiczne, nie?


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

@up

nie mam komplikatora aby sprawdzić ale coś ci się pomieszalo :-D

 

!= oznacza to że nie rowne :-D

 

 

while(....) oznacza że pętla będzie się wykonywać dopóki wyrażenie w niej będzie PRAWDZIWE.

 

wyrażenia jak a==b, a<b, a!=b zwracają albo prawde albo fałsz 1 lub 0

 

 

wiec

while(a==b ) oznacza wykonuj pętle dopóki a bedzie równe b, ponieważ tylko wtedy wyrażenie a==b zwróci prawde.

 

while(a!= b )oznacza że pętla bedzie sie wykonywała dopóki a nie bedzie takie samo jak b.

 

 

coś jak while(a= b ) będzie zwracało zawsze prawde jeżeli sie nie myle. Jednak nie ma to znaczenie co to zwraca ponieważ taki zapis w 99% wypadków jest błędem logicznym i sprawia że kod będzie działał inaczej niż byś chciał.

Pisze boty do gier WWW na zlecenie.

Opublikowano

coś jak while(a= b ) będzie zwracało zawsze prawde jeżeli sie nie myle. Jednak nie ma to znaczenie co to zwraca ponieważ taki zapis w 99% wypadków jest błędem logicznym i sprawia że kod będzie działał inaczej niż byś chciał.

 

Mylisz się :). Jeżeli b = 0, to zwróci fałsz. Bo każda liczba różna od 0 zwróci prawdę.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

Mylisz się :). Jeżeli b = 0, to zwróci fałsz. Bo każda liczba różna od 0 zwróci prawdę.

Masz racje lecz nie było to dla mnie takie oczywiste bez sprawdzania ;)

 

Myślałem, że może to zwracać coś w stylu jeżeli uda sie przypisać a=b to true, jeżeli nie to false.

 

Za dużo wysokopoziomowych jezyków;)

Pisze boty do gier WWW na zlecenie.

Opublikowano

To ja jeszcze pozwolę sobie dodać, że

"srand(time(NULL));"

powinno być wywołane raz, na początku programu, a nie w pętli.

Jeżeli sądzisz że autor programu chciał żeby po każdej próbie zgadnięcia, liczba była taka samo to również rand jest do wywalenia z pętli (chociaż to nic nie zmieni jeżeli srand będzie poza pętla, po prostu nic nie robiący call ;) )

Pisze boty do gier WWW na zlecenie.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...